Integrated circuit devices may generally be adapted to implement a wide array of functions. Programmable integrated circuit devices, for example, may include logic or circuit blocks that are configurable to implement different user designs. Accordingly, integrated circuit devices may be employed in different systems (e.g., in various communication systems). An integrated circuit device may be coupled to off-chip elements that are external to the device through various input-output protocols.
Generally, an integrated circuit device may include high-speed transceiver (transmitter and receiver) channels that may be used to communicate with external circuits through different protocols. However, different communication standards and protocols may have specific requirements met when implementing certain functions with an integrated circuit device. As an example, when used in a high-speed communication system, the integrated circuit device may transmit and receive data packets through a high-speed data transfer protocol (e.g., the Gigabit Ethernet standard).
Oftentimes proper clock synchronization may be required for different components within a communication system to communicate effectively. For instance, in the Precision Time Protocol (a protocol generally used to synchronize clocks within a system network) different messages are exchanged between devices in the system for synchronization purposes. These messages include timestamps that may be used to synchronize the data packets received by and transmitted from different devices.
In order to generate accurate timestamps for every data packet received by a particular device, the actual latency (i.e., the time needed for a packet of data to travel from one point to another) of various circuit blocks within the device may need to be considered. However, depending on the received data packets, circuits within an integrated circuit device may generally have varying latencies.
It is within this context that the embodiments described herein arise.